AnPay JSON-RPC API
通过一套 JSON-RPC 2.0 接口即可接入全球代收与代付。所有请求 POST 到统一端点,方法名写在 method 字段,资金流转全程上链、可对账。
POST {{ epUrl }}鉴权
每个请求带四个请求头。密钥在商户后台「API 密钥」页创建(沙盒 / 生产各自独立),secret 只在创建时显示一次。
签的是 body 的原始字节。反序列化后重新 JSON.stringify 会改变键序与空格,签名必然对不上 —— 请在中间件里留一份 raw body。另可在后台为密钥配置 IP 白名单。
请求与响应格式
遵循 JSON-RPC 2.0:成功返回 result,失败返回 error,始终回传对应 id。HTTP 状态码恒为 200,业务结果只看有没有 error。金额一律用字符串传递 —— JSON 的 number 是双精度浮点,大额或 18 位小数会丢精度。
error.code 是五位数,首三位镜像 HTTP 语义:401xx 鉴权 · 400xx 参数 · 402xx 余额与限额 · 429xx 限流 · 500xx 服务端。JSON-RPC 保留的负数只用于协议层错误(如 -32601 method not found)。请按 error.data 里的结构化字段排查,不要去解析 message —— 文案会改,字段不会。
方法参考
全部 POST /api/v1/rpc,方法名写在 method 里。枚举对外一律出字符串,单号只出 no。
{{ m.method }}
{{ m.desc }}
{{ p.name }}
{{ p.type }}
{{ p.desc }}
Webhook 回调
状态变化时,AnPay 向你配置的回调地址 POST 事件,签名方式与请求一致(同一把 secret)。成功的判定是 HTTP 200 且 body 为 ok;否则按 1m / 5m / 15m / 1h / 6h 指数退避重试,共 8 次后放弃。每个事件带唯一 event_id,请据此去重。
{{ w.event }}
{{ w.desc }}